With the development of computer networks, data synchronization technology is used more and more widely. Typically, a synchronization server or client located in a data synchronization system captures each of the changes that occurred in source data and records these changes. During data synchronization, these changes will be transmitted to a counterpart for the counterpart to apply them. Traditionally, each of the changes that occurred in source data needs to be transmitted to the counterpart. When a great number of changes occur in source data, since each of the changes needs to be transmitted to the counterpart, it will usually occupy a relatively large amount of bandwidth resource. Further, when the counterpart receives these changes, it needs to apply these changes one by one; it is a time consuming process if there are a lot of changes. In case of mobile data synchronization, since a mobile terminal has limited computing capability, this problem becomes even prominent.